#include <bits/stdc++.h>
using namespace std;

int m,n;
int a[120][120];
int dir[4][2]{{1,0},{-1,0},{0,1},{0,-1}};

int dfs(int x,int y)
{
	int cnt=0;
	for(int i=0;i<4;i++)
	{
		int xx=x+dir[i][0];
		int yy=y+dir[i][1];
		if(xx<1||xx>m||yy<1||yy>n||a[x][y]<a[xx][yy])
		{
			cnt++;
		}
	}
	if(cnt==4)
	{
		return 1;
	}
	
	for(int i=0;i<4;i++)
	{
		int xx=x+dir[i][0];
		int yy=y+dir[i][1];
		if(xx>=1&&xx<=m&&yy>=1&&yy<=n&&a[x][y]>a[xx][yy])
		{
			return 1+dfs(xx,yy);
		}
	}
}

int main()
{
	cin >> m >> n;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin >> a[i][j];
		}
	}
	int ans=0;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout << dfs(i,j) << " ";
			ans=max(ans,dfs(i,j));
		}
		cout << endl;
	}
	cout << ans << endl;
	return 0;
}

